/* PR c/102989 */
/* { dg-do run { target bitint } } */
/* { dg-options "-std=c23 -pedantic-errors" } */
/* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */
/* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */

#if __BITINT_MAXWIDTH__ >= 256
__attribute__((noipa)) void
test135_192_228_256 (unsigned _BitInt(135) *p, unsigned _BitInt(192) *q,
		     unsigned _BitInt(228) *r, unsigned _BitInt(256) *s)
{
  r[6] = (_BitInt(135)) (p[0] + p[1] + p[2]);
  s[6] = (_BitInt(135)) (p[0] - p[1] + p[2]);
  r[7] = p[0] + p[1] - p[2];
  s[7] = p[0] - p[1] - p[2];
  r[8] = (_BitInt(192)) (q[0] + q[1] + q[2]);
  s[8] = (_BitInt(192)) (q[0] - q[1] + q[2]);
  r[9] = q[0] + q[1] - q[2];
  s[9] = q[0] - q[1] - q[2];
  p[6] = (_BitInt(135)) (r[0] + r[1] + r[2]);
  q[6] = (_BitInt(135)) (r[0] - r[1] + r[2]);
  p[7] = r[0] + r[1] - r[2];
  q[7] = r[0] - r[1] - r[2];
  p[8] = (_BitInt(192)) (s[0] + s[1] + s[2]);
  q[8] = (_BitInt(192)) (s[0] - s[1] + s[2]);
  p[9] = s[0] + s[1] - s[2];
  q[9] = s[0] - s[1] - s[2];
  r[10] = ((unsigned _BitInt(228)) ((_BitInt(135)) p[3])) + ((_BitInt(135)) p[4]) + ((_BitInt(135)) p[5]);
  s[10] = ((unsigned _BitInt(256)) ((_BitInt(135)) p[3])) + ((_BitInt(135)) p[4]) + ((_BitInt(135)) p[5]);
  r[11] = ((unsigned _BitInt(228)) p[3]) + p[4] + p[5];
  s[11] = ((unsigned _BitInt(256)) p[3]) + p[4] + p[5];
  r[12] = ((unsigned _BitInt(228)) ((_BitInt(192)) q[3])) + ((_BitInt(192)) q[4]) + ((_BitInt(192)) q[5]);
  s[12] = ((unsigned _BitInt(256)) ((_BitInt(192)) q[3])) + ((_BitInt(192)) q[4]) + ((_BitInt(192)) q[5]);
  r[13] = ((unsigned _BitInt(228)) q[3]) + q[4] + q[5];
  s[13] = ((unsigned _BitInt(256)) q[3]) + q[4] + q[5];
  p[10] = ((unsigned _BitInt(135)) r[3]) + ((unsigned _BitInt(135)) r[4]) + ((unsigned _BitInt(135)) r[5]);
  q[10] = ((unsigned _BitInt(192)) r[3]) + ((unsigned _BitInt(192)) r[4]) + ((unsigned _BitInt(192)) r[5]);
  p[11] = ((unsigned _BitInt(135)) s[3]) + ((unsigned _BitInt(135)) s[4]) + ((unsigned _BitInt(135)) s[5]);
  q[11] = ((unsigned _BitInt(192)) s[3]) + ((unsigned _BitInt(192)) s[4]) + ((unsigned _BitInt(192)) s[5]);
  p[12] = ((_BitInt(228)) ((_BitInt(135)) p[3])) < ((_BitInt(228)) ((_BitInt(135)) p[4]));
  q[12] = ((_BitInt(256)) ((_BitInt(135)) p[3])) > ((_BitInt(256)) ((_BitInt(135)) p[4]));
  p[13] = ((_BitInt(228)) ((unsigned _BitInt(135)) p[3])) <= ((unsigned _BitInt(228)) ((_BitInt(135)) p[4]));
  q[13] = ((_BitInt(256)) ((unsigned _BitInt(135)) p[3])) >= ((unsigned _BitInt(256)) ((_BitInt(135)) p[4]));
  p[14] = ((_BitInt(228)) ((_BitInt(192)) q[3])) < ((_BitInt(228)) ((_BitInt(192)) q[4]));
  q[14] = ((_BitInt(256)) ((_BitInt(192)) q[3])) <= ((_BitInt(256)) ((_BitInt(192)) q[4]));
  r[14] = ((_BitInt(228)) ((unsigned _BitInt(192)) q[3])) >= ((unsigned _BitInt(228)) ((_BitInt(192)) q[4]));
  s[14] = ((_BitInt(256)) ((unsigned _BitInt(192)) q[3])) > ((unsigned _BitInt(256)) ((_BitInt(192)) q[4]));
}
#endif

#if __BITINT_MAXWIDTH__ >= 575
__attribute__((noipa)) void
test470_512_519_575 (unsigned _BitInt(470) *p, unsigned _BitInt(512) *q,
		     unsigned _BitInt(519) *r, unsigned _BitInt(575) *s)
{
  r[6] = (_BitInt(470)) (p[0] + p[1] + p[2]);
  s[6] = (_BitInt(470)) (p[0] - p[1] + p[2]);
  r[7] = p[0] + p[1] - p[2];
  s[7] = p[0] - p[1] - p[2];
  r[8] = (_BitInt(512)) (q[0] + q[1] + q[2]);
  s[8] = (_BitInt(512)) (q[0] - q[1] + q[2]);
  r[9] = q[0] + q[1] - q[2];
  s[9] = q[0] - q[1] - q[2];
  p[6] = (_BitInt(470)) (r[0] + r[1] + r[2]);
  q[6] = (_BitInt(470)) (r[0] - r[1] + r[2]);
  p[7] = r[0] + r[1] - r[2];
  q[7] = r[0] - r[1] - r[2];
  p[8] = (_BitInt(512)) (s[0] + s[1] + s[2]);
  q[8] = (_BitInt(512)) (s[0] - s[1] + s[2]);
  p[9] = s[0] + s[1] - s[2];
  q[9] = s[0] - s[1] - s[2];
  r[10] = ((unsigned _BitInt(519)) ((_BitInt(470)) p[3])) + ((_BitInt(470)) p[4]) + ((_BitInt(470)) p[5]);
  s[10] = ((unsigned _BitInt(575)) ((_BitInt(470)) p[3])) + ((_BitInt(470)) p[4]) + ((_BitInt(470)) p[5]);
  r[11] = ((unsigned _BitInt(519)) p[3]) + p[4] + p[5];
  s[11] = ((unsigned _BitInt(575)) p[3]) + p[4] + p[5];
  r[12] = ((unsigned _BitInt(519)) ((_BitInt(512)) q[3])) + ((_BitInt(512)) q[4]) + ((_BitInt(512)) q[5]);
  s[12] = ((unsigned _BitInt(575)) ((_BitInt(512)) q[3])) + ((_BitInt(512)) q[4]) + ((_BitInt(512)) q[5]);
  r[13] = ((unsigned _BitInt(519)) q[3]) + q[4] + q[5];
  s[13] = ((unsigned _BitInt(575)) q[3]) + q[4] + q[5];
  p[10] = ((unsigned _BitInt(470)) r[3]) + ((unsigned _BitInt(470)) r[4]) + ((unsigned _BitInt(470)) r[5]);
  q[10] = ((unsigned _BitInt(512)) r[3]) + ((unsigned _BitInt(512)) r[4]) + ((unsigned _BitInt(512)) r[5]);
  p[11] = ((unsigned _BitInt(470)) s[3]) + ((unsigned _BitInt(470)) s[4]) + ((unsigned _BitInt(470)) s[5]);
  q[11] = ((unsigned _BitInt(512)) s[3]) + ((unsigned _BitInt(512)) s[4]) + ((unsigned _BitInt(512)) s[5]);
  p[12] = ((_BitInt(519)) ((_BitInt(470)) p[3])) < ((_BitInt(519)) ((_BitInt(470)) p[4]));
  q[12] = ((_BitInt(575)) ((_BitInt(470)) p[3])) > ((_BitInt(575)) ((_BitInt(470)) p[4]));
  p[13] = ((_BitInt(519)) ((unsigned _BitInt(470)) p[3])) <= ((unsigned _BitInt(519)) ((_BitInt(470)) p[4]));
  q[13] = ((_BitInt(575)) ((unsigned _BitInt(470)) p[3])) >= ((unsigned _BitInt(575)) ((_BitInt(470)) p[4]));
  p[14] = ((_BitInt(519)) ((_BitInt(512)) q[3])) < ((_BitInt(519)) ((_BitInt(512)) q[4]));
  q[14] = ((_BitInt(575)) ((_BitInt(512)) q[3])) <= ((_BitInt(575)) ((_BitInt(512)) q[4]));
  r[14] = ((_BitInt(519)) ((unsigned _BitInt(512)) q[3])) >= ((unsigned _BitInt(519)) ((_BitInt(512)) q[4]));
  s[14] = ((_BitInt(575)) ((unsigned _BitInt(512)) q[3])) > ((unsigned _BitInt(575)) ((_BitInt(512)) q[4]));
}
#endif

#if __BITINT_MAXWIDTH__ >= 574
__attribute__((noipa)) void
test138_192_523_574 (unsigned _BitInt(138) *p, unsigned _BitInt(192) *q,
		     unsigned _BitInt(523) *r, unsigned _BitInt(574) *s)
{
  r[6] = (_BitInt(138)) (p[0] + p[1] + p[2]);
  s[6] = (_BitInt(138)) (p[0] - p[1] + p[2]);
  r[7] = p[0] + p[1] - p[2];
  s[7] = p[0] - p[1] - p[2];
  r[8] = (_BitInt(192)) (q[0] + q[1] + q[2]);
  s[8] = (_BitInt(192)) (q[0] - q[1] + q[2]);
  r[9] = q[0] + q[1] - q[2];
  s[9] = q[0] - q[1] - q[2];
  p[6] = (_BitInt(138)) (r[0] + r[1] + r[2]);
  q[6] = (_BitInt(138)) (r[0] - r[1] + r[2]);
  p[7] = r[0] + r[1] - r[2];
  q[7] = r[0] - r[1] - r[2];
  p[8] = (_BitInt(192)) (s[0] + s[1] + s[2]);
  q[8] = (_BitInt(192)) (s[0] - s[1] + s[2]);
  p[9] = s[0] + s[1] - s[2];
  q[9] = s[0] - s[1] - s[2];
  r[10] = ((unsigned _BitInt(523)) ((_BitInt(138)) p[3])) + ((_BitInt(138)) p[4]) + ((_BitInt(138)) p[5]);
  s[10] = ((unsigned _BitInt(574)) ((_BitInt(138)) p[3])) + ((_BitInt(138)) p[4]) + ((_BitInt(138)) p[5]);
  r[11] = ((unsigned _BitInt(523)) p[3]) + p[4] + p[5];
  s[11] = ((unsigned _BitInt(574)) p[3]) + p[4] + p[5];
  r[12] = ((unsigned _BitInt(523)) ((_BitInt(192)) q[3])) + ((_BitInt(192)) q[4]) + ((_BitInt(192)) q[5]);
  s[12] = ((unsigned _BitInt(574)) ((_BitInt(192)) q[3])) + ((_BitInt(192)) q[4]) + ((_BitInt(192)) q[5]);
  r[13] = ((unsigned _BitInt(523)) q[3]) + q[4] + q[5];
  s[13] = ((unsigned _BitInt(574)) q[3]) + q[4] + q[5];
  p[10] = ((unsigned _BitInt(138)) r[3]) + ((unsigned _BitInt(138)) r[4]) + ((unsigned _BitInt(138)) r[5]);
  q[10] = ((unsigned _BitInt(192)) r[3]) + ((unsigned _BitInt(192)) r[4]) + ((unsigned _BitInt(192)) r[5]);
  p[11] = ((unsigned _BitInt(138)) s[3]) + ((unsigned _BitInt(138)) s[4]) + ((unsigned _BitInt(138)) s[5]);
  q[11] = ((unsigned _BitInt(192)) s[3]) + ((unsigned _BitInt(192)) s[4]) + ((unsigned _BitInt(192)) s[5]);
  p[12] = ((_BitInt(523)) ((_BitInt(138)) p[3])) < ((_BitInt(523)) ((_BitInt(138)) p[4]));
  q[12] = ((_BitInt(574)) ((_BitInt(138)) p[3])) > ((_BitInt(574)) ((_BitInt(138)) p[4]));
  p[13] = ((_BitInt(523)) ((unsigned _BitInt(138)) p[3])) <= ((unsigned _BitInt(523)) ((_BitInt(138)) p[4]));
  q[13] = ((_BitInt(574)) ((unsigned _BitInt(138)) p[3])) >= ((unsigned _BitInt(574)) ((_BitInt(138)) p[4]));
  p[14] = ((_BitInt(523)) ((_BitInt(192)) q[3])) < ((_BitInt(523)) ((_BitInt(192)) q[4]));
  q[14] = ((_BitInt(574)) ((_BitInt(192)) q[3])) <= ((_BitInt(574)) ((_BitInt(192)) q[4]));
  r[14] = ((_BitInt(523)) ((unsigned _BitInt(192)) q[3])) >= ((unsigned _BitInt(523)) ((_BitInt(192)) q[4]));
  s[14] = ((_BitInt(574)) ((unsigned _BitInt(192)) q[3])) > ((unsigned _BitInt(574)) ((_BitInt(192)) q[4]));
}
#endif

int
main ()
{
#if __BITINT_MAXWIDTH__ >= 256
  static unsigned _BitInt(135) p135[24] = {
    4187273188098476865668456823817923591884uwb,
    6807534906955493735159263291613578822092uwb,
    41026661032626929517457579844514879338728uwb,
    21107725719388574292787309710748598888876uwb,
    37762806761430755157975144430695583115875uwb,
    26495620887646122219041406684145481614415uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    24294442897610200845563470372394790405427uwb,
    14494728260279138634407444539578218061153uwb,
    35692618919905757032302955601299560733828uwb,
    2073608133107652132583703172274308589354uwb,
    23162446968047093866488519785733079173672uwb,
    23215356388255044329396934936113503903836uwb,
    0uwb,
    1uwb,
    0uwb
  };
  static unsigned _BitInt(192) q192[24] = {
    2086085555369597859021791929925392355640686637062909369671uwb,
    2680579114698255110186052616880338377881530773942412775534uwb,
    3327728695296211902341553047509833116972847770197432421329uwb,
    5940317943727487997168783552089315457607206947999336887004uwb,
    5542354187267299678821667349861772942889507214082859925027uwb,
    3271998891636156295842018666243687525289384908182662772181uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    19403341198470336643414519815259741762743uwb,
    5896270732876306173690375572457711356577732208000026578149uwb,
    5124631678261056717896926088333660842277657529754581693718uwb,
    3443509077298665851293720223028023121358922119534917222332uwb,
    5756578284734093802702142887739107033567473420998759418408uwb,
    4630861060283249917347323439223922476602768583090317402204uwb,
    1uwb,
    0uwb,
    0uwb
  };
  static unsigned _BitInt(228) r228[24] = {
    161966633757691155241945327015229701994331693366818788921573408319756uwb,
    38296346596827362616775983079516749483975676455899963878059782490174uwb,
    241591800199660287949868996521720659189646617902754527264229209396201uwb,
    428902738798964850544466128550714169355105701114620489106903291340964uwb,
    235528598555728562847947927417825731721784962388084030737368213942614uwb,
    256292789834236084059292238814861516121661392325304427878120090497070uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    8465326161800776794973350208680050686336uwb,
    13524290028307164406682090022182954141616uwb,
    1817291629977384107713608171107897434392709736738720053638uwb,
    1438935974771641066866291499295897616549369640807889723876uwb,
    431359146674410236714672241390567958214899515783829121020714765473886uwb,
    85366153368465451669803860825589663619166uwb,
    431359146670333602531143143072639192076766087438128192434530520032980uwb,
    14754671022630943971832469568194775925786099070264859584212uwb,
    0uwb
  };
  static unsigned _BitInt(256) s256[24] = {
    33689368506800899324387091792297880425309542585828646830789259960880991063584uwb,
    39571323848345650718084485253626478678560275338021939071625078673058668106679uwb,
    110504693488819055796063554254198165064817853023249665372075921323272516500141uwb,
    102297428517176642359444223748374693989314404662584768443522888625651626181283uwb,
    80244728165314710913956389448156622901095909768247496334097456157707270969074uwb,
    103665915010005983358711046736784166330673952063454224485339530724102504302279uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    115792089237316195423570985008687907848120241013530353364112407633366022682088uwb,
    43465363180276300259675513190222127563800uwb,
    2733235135967554651177292360554887094732003633317929015466uwb,
    2354879480761811610329975688742887276888663537387098685704uwb,
    115792089237316195423570985008687907851523852102345769062637545330970131126366uwb,
    85366153368465451669803860825589663619166uwb,
    115792089237316195419494350825158809533595085964212340716936616744785885685460uwb,
    14754671022630943971832469568194775925786099070264859584212uwb,
    0uwb
  };
  test135_192_228_256 (p135, q192, r228, s256);
  for (int i = 6; i < 15; ++i)
    if (p135[i] != p135[i + 9]
	|| q192[i] != q192[i + 9]
	|| r228[i] != r228[i + 9]
	|| s256[i] != s256[i + 9])
      __builtin_abort ();
#endif
#if __BITINT_MAXWIDTH__ >= 575
  static unsigned _BitInt(470) p470[24] = {
    290679861857217105576749510785172236097196317219002071340131005135259342235163792727727620685697644545754092322618593967328975789101613622756uwb,
    3007766161917260990990922308983802917798001363835330597758175849272351861703814650851622073672692222948955250827120638757725725607466346547961uwb,
    574060276709923148626402211078479568921550247040425483673763765831291153847648453629069366560426848580089729851582562589160127450838856742850uwb,
    1513032643015460548072615957037831807842396447090608200111284706851223881642236182620260811534047670872236957008209636843038402328412186623867uwb,
    736018121751614604248763744490396332128994581237940802611521314820643126961848250509301799425532301686788266718861244200351342613056372468552uwb,
    30155063271645468057678848208011195960933215968662731964986808367634269990062216294334734731269355557159014770813970386099476462377224708070uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    2336276654669971355000545579045474018643499545251683574017489057360457587609182251538648565538596336349157530705582440962441081292975829750725uwb,
    2811887457092416012110559147431839355552932271928059605261212342070741952382405730371093476958614469776023370616340687057532287796176219869449uwb,
    1454614080118846581654283867177010224989739028600678358170065228650331074859011839166100981351630244514069807407054058295180885648638359156315uwb,
    1452099984535181412105251439415950646129930223001670876794248464265033550302786152371528494721306355739311614007226227128382131037961688117145uwb,
    1700131771206195433306793035837240564903007159128880173423363038992576767815643454391004339339329935701073991719473097155654566696420734301605uwb,
    687646008549017812028590579565520345681613774085522641973968443446824759773421489288886130070355380390157446333512774944224841451835655874095uwb,
    0uwb,
    0uwb,
    1uwb
  };
  static unsigned _BitInt(512) q512[24] = {
    11999607180890662234640611094796125402682182607671756821443119677915957826104697013256706604957461530042481930446302956354396703791101848051437136984190670uwb,
    1669399929141703249463393746110522414573291237669539702537374904052097169767189303794997941915228747803109873985069631915369758962889453579386958506452828uwb,
    11378992935330313540343401440793120879643841271871581700686172052228324616806874974534345697693861690426360116949795282888644662188134499896194148433768387uwb,
    9993083190971384981726645923137348157759809443699348826766460590248782912389872021894301181692065821343040669086846645954670076835055767363529908044878460uwb,
    4194741102820399815388565886074911339757551809782406262401319165104710890785047966633447456093482200519894213755964462654816313685699735398967845201704233uwb,
    2421595337545745821088215118098296983215379552867408581490131959698723606384411644669422390261525987191387981272012502904825570949628276538570672660290088uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    1513903473639259387274129463605791299347099137673287344952013483163916537193546764015586855259820134007663746976291793381162392640818043683999uwb,
    12277156682318352235712463688522823330952278031457456554222055921981909263024261498262481023121115845377546131965398459894872235113782544708914458317029859uwb,
    4027845254315197169423233647114376033430305844071443075105613565290966574715062841638133555232740863237407025233981863916917198547523085200055676796066563uwb,
    10707639349311374361511081362429794348061398948029634783963376915733257208356397594815368492279579755336561685612483789993986308827288890748132804532704321uwb,
    11909891944680678452073045961414477447224653685643721320079864331428768064778333088269746747399111241079878764522077445502337140106279379768026249427056037uwb,
    5596625625751028170955045723080584878265817548746738005171988990687430526534540571089022256509279287347335747951148567883951414510786508005390890674578991uwb,
    1uwb,
    1uwb,
    1uwb
  };
  static unsigned _BitInt(519) r519[24] = {
    1030342010401113812244886675533462199253435182769422147430754601621146628252085744300635665226057568402783959871999680067593144181093412956713229194456894164uwb,
    1399286804337892133001051165724092281210924970185276871571622362921173888386145177372320997003882614750136133472548611361735698398271314700469097220046489491uwb,
    1187491577184187187658283970910931091626643735561997844498566871693437222121521301715871480084581538847004007675304538195851777836706064395267954449805214046uwb,
    1590038038660143030887559697627655997346700459420257472659393551660904723658903805269248515919541163543209428329235720802030325145482255847896549116166445779uwb,
    884402951942479884942778411278542758813719790602900630698855595508395145632292880569268024966776717352051287824788383446062053991609910742048548988449536210uwb,
    326292950770117959333132136682031715802512494345703440528331497456255817028879418424543059879797143305345789113287071774990765627898999338681127138076566016uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    823923731816440081735482986127565752359132554398497263261175151854750269095449533809682632145875337989030585578073140142878915098101850794143uwb,
    2724385747064554947941269608690495584973647434013907185424543088576320050091329989950280327797963018914619613298156670135894573945729103427867uwb,
    1714431799218129913570774556055636380759299408511854443817835408543138647401945680368622211813596383857215966052878410278731400359247393614777658018691007981uwb,
    2290014174702051943760603400113526937611632573469714823294322529739730379065011342517358849178828587419231687481577305381121800565856801734629947056875111uwb,
    2279205828038720620379058549736239335932324244297211734687792830039501278594146649423897345690849328116184238497884851429489221403845783800489uwb,
    2279205828038720620379058549736239335932324244297211734687792830039501278594146649423897345690849328116184238497884851429489221403845783800489uwb,
    3201611701394933518629401929104710353253374985756770292934350271330453379485784656395296729880170581364291005928337560660558078658437209354634776900788685uwb,
    16609419631337530618203426927310556480732740806349163670657911715052217409559331633197171028047074009054322864114823611514311961470383779301068425906872781uwb,
    1uwb
  };
  static unsigned _BitInt(575) s575[24] = {
    96927313110651552741697906285845027560278665167912446772243994455709167318164555507475733363294500975052442014691905285678776198101396126432691790596947740988776944060654926uwb,
    102707772385622802706823804871287360126470122215207829602545757786870641626119828685986043329520959072898431094747590180228385563652833016000194460109692900249703592758013356uwb,
    110583747014804561196219218561034468168713024547408050239450245043477530907411843124501635977214033600051542621634445064425297114819990148482732834711384300709771384106312545uwb,
    54306775370484796829739172393424070839859954453514190131950827429084664762249620446751937114044786249494515203860165437770921772021031551664278887501083036990545747406428169uwb,
    46114759885997746928772223321204027410936673207704735367438056888037044881883997045448409583831956188379542065205564192543381437121786101651883495914008056100188006564313178uwb,
    35190453913973191463478013966823372048936778121696189495901809463574016396767724553244869787736619209084040172125210006605333310947417602727114932375121134023666009552590284uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    905556545317840426670820457599737857678360574120357846766614390078350723070174958903911342346373648262657058770329172970099291381779089937069uwb,
    2806018560565955292876607080162667690292875453735767768929982326799920504066055415044509037998461329188246086490412702963114950229406342570793uwb,
    123665200736552267025144844837017673343938243343672951569825529047137624617410727523806857743618811225191141477410357286961350974191432110603936918943400338433680414973687605uwb,
    12359022246361242544407840906098328235944415918723028795943134165357300069604179711729237263515274519503043797697924092404136165452024464522289679050053551uwb,
    2279205828038720620379058549736239335932324244297211734687792830039501278594146649423897345690849328116184238497884851429489221403845783800489uwb,
    2279205828038720620379058549736239335932324244297211734687792830039501278594146649423897345690849328116184238497884851429489221403845783800489uwb,
    3201611701394933518629401929104710353253374985756770292934350271330453379485784656395296729880170581364291005928337560660558078658437209354634776900788685uwb,
    16609419631337530618203426927310556480732740806349163670657911715052217409559331633197171028047074009054322864114823611514311961470383779301068425906872781uwb,
    1uwb
  };
  test470_512_519_575 (p470, q512, r519, s575);
  for (int i = 6; i < 15; ++i)
    if (p470[i] != p470[i + 9]
	|| q512[i] != q512[i + 9]
	|| r519[i] != r519[i + 9]
	|| s575[i] != s575[i + 9])
      __builtin_abort ();
#endif
#if __BITINT_MAXWIDTH__ >= 574
  static unsigned _BitInt(138) p138[24] = {
    101422284254667607392742201719883227411625uwb,
    160466466586635795278252037831376082677350uwb,
    25107605609849786823351214520760656620933uwb,
    295969175246745649031682884402595713219313uwb,
    13181527086641487248448136085636319944955uwb,
    235130534778709326353598872018612896874473uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    167302456247167982996160810773690897220075uwb,
    297389206356979455260412959683265332806635uwb,
    335394759052458807357434855405547433962500uwb,
    321901396962914134364671486134447068161226uwb,
    120351777790732110377699121565672639601425uwb,
    198373944314536120634408834917264425196481uwb,
    1uwb,
    0uwb,
    1uwb
  };
  static unsigned _BitInt(192) t192[24] = {
    911018684451330895893338523816772465484522458698266889768uwb,
    2046183627271691614636061554682220483052698404211100534853uwb,
    4678069061913127216263854322789964375230426789917042687454uwb,
    3459784480694777343275716409755634649190978443376335561303uwb,
    3867595273303447369888355921671728883273018646069926566645uwb,
    4813052987333975223830750234077960301742057680559503213273uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    6277101735386680684990022390197371509564931202241440203909uwb,
    1278608194268128077434264942601213585924783150489231066757uwb,
    4029427835151946963573253373549922510624267261072515255840uwb,
    672033229033398034156049846020027986275380626166731032294uwb,
    1357991472586126795792080074222943985598370321805879319313uwb,
    2856538916789713009071224987092580961800045494832854440897uwb,
    0uwb,
    1uwb,
    1uwb
  };
  static unsigned _BitInt(523) r523[24] = {
    3195765699538496998535864601292347963256629173162679399458238383409531673496364786350189170351629279748663665677408547146700561030889355712400808816914064440uwb,
    11159477301642000894502707350448750665412836731536210953742141163262563390545287499722678844509966339767235942912910312315832667904302744531360002727358824115uwb,
    22101560948582634345286310809677329764046784779464227969587135587282924532940609616951363156766482627364659628549350689295905244730986420796580267097794699008uwb,
    3492227525200477614910950479637037651613240112641204783475954014565794311494477327458692721172240707535504736878649393132370069751011176314509944329056779358uwb,
    4470424684397392413407392569484317542436005833167916532642765757801563745613041876920796693178762870199674360069594704277190939739704629258367293449899462004uwb,
    13549742618125959998093915668094856307843206900469464436576203440358812289708508455667681082349827642620118118540849103671482396581682398406739495271235801407uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    27459190640522438859927603196325572869077741200573221637577853836742172733590624208490238562645818219909185245565923370695700676111069483100152175053778407572uwb,
    236781145231453615847643025030498653468042uwb,
    1358169638249468962957464978081290907665292208362375599179uwb,
    4556234985196576058101335178916694989409149517456359250063uwb,
    27459190640522438859927603196325572869077741200573221637577853836742172733590624208490238562645818219909185245565923279531437610013356035988992599748093205461uwb,
    544281237112096462633729892506844930038741uwb,
    27459190640522438859927603196325572869077741200573221637577853836742172733590624208490238562645818213218312780738081077635942247881191161149284549778122031141uwb,
    12140432741332199936994822565505323834206054770005765341221uwb,
    0uwb
  };
  static unsigned _BitInt(574) s574[24] = {
    49523656310311432476097096707674348247864532997580458449189999134679927949102290921020347613627600560130921641399166416960416734901407545116688589513670229626633588928674165uwb,
    42569658590233851212367348547775997184555788503209190045856322440515976044599442772511746833320065456241311597243171150757254859304810272116865990700066734780242713347731186uwb,
    19981999860412564491215269984435969976814910925473334223760435541572601828084228297697056388524273994976358111097326046010839057122757304450178767567932398574496781000082333uwb,
    8558322198907185372332169456108688881070480268559248312027066736995799133128362338305761323248219317368913715505110464564580744145522428754123209057064241016828671823488793uwb,
    43811765949130776561433192718564194559949284938162910217959397270715482324290476494691373258084890889610745910962659657029995968487465144041804156738366622609326192386149788uwb,
    45992921207674703917316226268947032522368981737128477902399950788131403664441772601690186531393245791394478464207683996776726761730838587963296718352656413407075666840676108uwb,
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576653865915164420374411133357560960838529992uwb,
    264297355785223011877634547377877136644286uwb,
    61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504032100640224964662421487833755255625414851874551633211704257uwb,
    463867730653192828829212069552254023303752709034158180357uwb,
    61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576535185441544553264934030675638276670151637uwb,
    544281237112096462633729892506844930038741uwb,
    61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504028143965376430734333289946182421100059190967588306698977317uwb,
    12140432741332199936994822565505323834206054770005765341221uwb,
    0uwb
  };
  test138_192_523_574 (p138, t192, r523, s574);
  for (int i = 6; i < 15; ++i)
    if (p138[i] != p138[i + 9]
	|| t192[i] != t192[i + 9]
	|| r523[i] != r523[i + 9]
	|| s574[i] != s574[i + 9])
      __builtin_abort ();
#endif
}
